package com.qk.controller;


import com.qk.common.Result;
import com.qk.utils.AliyunOSSOperator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.util.UUID;

@Slf4j
@RestController
public class UpLoadController {
/*    @PostMapping("/upload")
    public Result upLoad (String name , Integer age , MultipartFile file) throws Exception {
        log.info("上传文件");
        //1.获取原文件的全名,调用file.getOriginalFilename()方法,就可以获取到传入进来的原文件的全名
        String fileName = file.getOriginalFilename();
        //2.处理获取到的原文件名,
        // 构建一个文件名,不要重复 --->使用UUID : UUID.randomUUID().toString()
        // 这个方法会生成一个36位字符串,包含数字和字母,将文件名设置为这种
        String newFileName = UUID.randomUUID().toString();
        // 获取文件后缀 --->使用fileName.substring(fileName.lastIndexOf("."))方法,可以获取到文件名中的后缀
        String suffix = fileName.substring(fileName.lastIndexOf("."));
        newFileName = newFileName + suffix;
        //保存文件,调MultipartFile类中的file.transferTo()方法,里面需要传入一个File对象,将文件保存到指定位置
        file.transferTo(new File("D://FileTest"+newFileName));
        return Result.success();
    }*/
@Autowired
private AliyunOSSOperator aliyunOSSOperator;
@PostMapping("/upload")
public Result upLoad (MultipartFile image) throws Exception {
    log.info("上传文件{}", image);
    //获取文件名,并且随机生成一个文件名
    String fileName = image.getOriginalFilename();//获取原始文件名
    //获取文件后缀
    String name = fileName.substring(fileName.lastIndexOf("."));
    //随机生成一个文件名
    String newImageName = UUID.randomUUID().toString() + image.getOriginalFilename();
    //调用阿里云上传工具类,传入文件字节数组和文件名,返回文件访问URL
    String url = aliyunOSSOperator.upload(image.getBytes(), newImageName);
    return Result.success(url);
}
}
